/*-------------------------------------*/
/*            author: Fabian           */
/*            管理员主JS程序               */
/*-------------------------------------*/

//设置填充的空白图片（s.gif）的本地路径，默认是http://www.extjs.com/s.gif
Ext.BLANK_IMAGE_URL = 'EXT/resources/images/default/s.gif';

Ext.onReady(function(){        
 	
 	//开启提示功能
 	Ext.QuickTips.init();
 	
 	//显示更新皮肤的下拉框
 	changeSkin();
 	
 	/*---------------布局部分----------------*/
 	/* 定义基本布局的上，下，左，右，中的五个部分  */
 	/*-------------------------------------*/
 	
 	/*上部（北部）*/
	var top_cmp = new Ext.BoxComponent({ 
    	id: 'top_part',
        region:'north',
        el: 'north',
        height: 49
    }); 
    
    /*底部（南部）*/             
    var foot_cmp = new Ext.BoxComponent({ 
    	id: 'foot_part',
    	region:'south',
        el: 'south',
        height: 30
    });	   
    
   	/*右边（东部），工具栏*/
   	var right_cmp = new Ext.Panel({
   		id: 'tool_bar',
        region:'east',
        title: '工具',
        collapsible: true,
        split:true,
        iconCls: 'tool_bar_icon',
        width: 280,
        minSize: 180,
        maxSize: 280,
        layout:'fit',
        margins:'0 5 0 0',
        items:
            new Ext.TabPanel({
                border:false,
                tabPosition:'bottom',
                items:[{
                	//加载包含计算器的文件，并且可以执行JavaScript
                    autoLoad: {url: 'inc/counter.html', scripts: true},
                    title: '计算器',
                    iconCls: 'calculator_icon',
                    //设置此Panel背景颜色和计算器的颜色一致
                    bodyStyle: 'background-color: #D9E8FB',
                    autoScroll:true                    
                }                
                /*在线用户聊天
                , {
                    title: '在线用户',
                    autoScroll:true,
                    iconCls: 'online_icon',
                    layout:'accordion',
			        layoutConfig:{
			            animate:true
			        },
			        items: [{
			            title:'在线老师',
			            iconCls:'own_info',
			            border:false,
			            items: [{
			            	id: 'online_tch',
			            	xtype: 'treepanel',
			            	renderTo: 'treeOne',
			            	border: false,
			            	//隐藏根节点
			            	rootVisible: false,
			            	root: new Ext.tree.AsyncTreeNode({
			            		id: 'tch_online',
			            		text: '在线老师',
			            		children: [{
				                    text: '张飞',
				                    iconCls: 'online-user',
				                    leaf: true
				                }]
			            	})
			            }]
			        }, {
			            title:'在线学生',
			            iconCls:'own_info',
			            border: false,
			            items: [{
			            	id: 'online_stu',
			            	xtype: 'treepanel',
			            	renderTo: 'treeTwo',
			            	border: false,
			            	//隐藏根节点
			            	rootVisible: false,
			            	root: new Ext.tree.AsyncTreeNode({
			            		id: 'stu_online',
			            		text: '在线学生',
			            		children: [{
				                    text: '李四',
				                    iconCls: 'online-user',
				                    leaf: true
				                }]
			            	})
			            }]
			        }]
                }*/
                ]
          })
   	});
   	
   	/*左边（西部），菜单栏*/    	   	
   	var left_cmp = new Ext.Panel({
   		id: 'menu_bar',
        region:'west',
        title:'管理员菜单',
        split:true,
        iconCls:'user_bar_icon',
        width: 200,
        minSize: 170,
        maxSize: 240,
        collapsible: true,
        margins:'0 0 0 5',
        layout:'accordion',
        layoutConfig:{
            animate:true
        },
        items: [{
            title:'老师信息管理',
            iconCls:'user_edit',
            border:false,
            items: [{
            	id: 'teacher_mgr',
            	xtype: 'treepanel',
            	renderTo: 'tree1',
            	border:false,
            	//隐藏根节点
            	rootVisible: false,
            	root: new Ext.tree.AsyncTreeNode({
            		text: '老师信息管理',
            		children: [{
	                    id: 'all_teacher',
	                    text: '管理老师信息',
	                    iconCls: 'tree-first',
	                    leaf: true
	                }]
            	})
            }]
        },{
            title:'学生信息管理',
            border:false,
            iconCls:'user_edit',
            items: [{
            	id: 'student_mgr',
            	xtype: 'treepanel',
            	renderTo: 'tree3',
            	border:false,
            	//隐藏根节点
            	rootVisible: false,
            	root: new Ext.tree.AsyncTreeNode({
            		text: '学生信息管理',
            		children: [{
	                    id: 'all_student',
	                    text: '管理学生信息',
	                    iconCls: 'tree-first',
	                    leaf: true
	                }]
            	})
            }]
       },{
            title:'个人信息管理',
            border:false,
            iconCls:'own_info',
            items: [{
            	id: 'ownInfo_mgr',
            	xtype: 'treepanel',
            	renderTo: 'tree4',
            	border:false,
            	//隐藏根节点
            	rootVisible: false,
            	root: new Ext.tree.AsyncTreeNode({
            		text: '个人信息管理',
            		children: [{
	                    id: 'own_info',
	                    text: '查看个人信息',
	                    iconCls: 'tree-first',
	                    leaf: true
	                }, {
	                    id: 'modify_info',
	                    text: '修改个人信息',
	                    iconCls: 'tree-first',
	                    leaf: true
	                }]
            	})
            }]
       },{
            title:'BGU和意见管理',
            border:false,
            iconCls:'advise_mgr',
            items: [{
            	id: 'advise_mgr',
            	xtype: 'treepanel',
            	renderTo: 'tree5',
            	border:false,
            	//隐藏根节点
            	rootVisible: false,
            	root: new Ext.tree.AsyncTreeNode({
            		text: 'Bug和建议管理',
            		children: [{
	                    id: 'suggest_info',
	                    text: '管理Bug和建议',
	                    iconCls: 'tree-first',
	                    leaf: true
	                }]
            	})
            }]
       }],
       //底端工具栏
       bbar: [{
			text : '开始',
			iconCls : 'begin-icon',
			menu : new Ext.menu.Menu({
				items : [{
					text : '关于系统',
					iconCls : 'question_icon',
					handler : function() {
						new Ext.Window({
							closeAction : 'close',
							resizable : false,
							bodyStyle : 'padding: 7',
							modal : true,
							title : '关于本系统',
							html : '<br/>&nbsp;&nbsp;本系统是互联网发展的产物,<br/>它让老师和学生可以在课后很好的在线交流和互动,<br/>' +
									'希望使用本系统的老师和同学能够喜欢本系统,<br/>若遇到问题或者有好的建议希望能给我们留言,<br/>' +
									'我们会及时解决,为你们提供更好更贴切的服务,<br/>营造一个互动、自主、愉快的学习氛围!<br/>',
							width : 300,
							height : 200
						}).show();
					}
				}, {
					text : '退出系统',
					iconCls : 'del_icon',
					handler : function() {
						Ext.Msg.confirm('操作提示', '您确定要退出本系统?', function(btn) {
							if ('yes' == btn) {
								window.location.href = 'loginOut.do';								
							}
						});
					}
				}]
			})
		}]      
   	});
   	
   	/*中部，主要功能的显示区，使用选项面板*/
   	var center_cmp = new Ext.TabPanel({
    	id: 'center_part',
        region:'center',
        deferredRender:false,
        //可滚动的
        enableTabScroll: true,	
        activeTab:0,
        items:[{
            contentEl:'home',
            title: 'Home',
            iconCls: 'home_icon',
            autoScroll:true
        }],
        //给TabPanel增加右键菜单
        listeners:{
        	 //传进去的三个参数分别为:这个tabpanel(tabsDemo),当前标签页,事件对象e
			"contextmenu": function(tabPanel, myitem, e){
                    var closeMenu = new Ext.menu.Menu([{
	                     text:"关闭当前页",
	                     handler:function(){
	                        tabPanel.remove(myitem);
	                     }
                    },{
                         text:"关闭其他所有页",
                         handler:function(){
                            //循环遍历
                            tabPanel.items.each(function(item){
                                 if(item.closable && item!=myitem){
                                    //可以关闭的其他所有标签页全部关掉
                                    tabPanel.remove(item);
                                 }
                            });
                         }
                    }, {
                    	 text:"关闭所有页",
                         handler:function(){
                            //循环遍历
                            tabPanel.items.each(function(item){
                                 if(item.closable)
                                 {
                                    //可以关闭所有标签页全部关掉
                                    tabPanel.remove(item);
                                 }
                            });
                         }
                    }]);
                    //显示在当前位置
                    closeMenu.showAt(e.getPoint());
             }	
        }                
 	});
   	
   	//整体布局    	 
   	var viewport = new Ext.Viewport({
        layout:'border',
        items:[ top_cmp, foot_cmp, right_cmp, left_cmp, center_cmp ]
   	});
   	
   	//右边的工具栏默认是隐藏收缩的
   	Ext.getCmp('tool_bar').collapse();
   	
   	
   	/*---------------事件部分----------------*/
 	/*-------------------------------------*/
   	
   	/*工具类，根据男女风格*/
    var sexRenderer = function(value) {
        if (value == '男') {
            return '<span style="color:green;font-weight:bold;">男</span>';
        } else if (value == '女') {
            return '<span style="color:red;font-weight:bold;">女</span>';
        }
    };       
    
    /**********************老师信息管理模块*********************/
    Ext.getCmp("teacher_mgr").on('click', function(node, event) {
    	if (node.isLeaf()) {		//判断点击的是树的叶子节点
        	event.stopEvent();
        	
        	//获取点击的菜单项的id
           	var node_id = node.id;
           	//获取被点击的菜单项的text
           	var node_text = node.text;
           	
           	if (node_id == 'all_teacher') {			//浏览所有老师
           		
           		//从TabPanel获取此id的对象，看看tab是否已经打开
	         	var tab = center_cmp.getComponent(node_id);		         	
	         	
	           	if (!tab) {				//如果没有打开			
	           		
	           		//显示等待保存的提示信息
	        		Ext.MessageBox.show({
	        				title: '请等待',
                            msg: '正在加载，请稍等...',
                            progress: true,								        
					        width: 260,
					        wait:true,
					        icon: 'mb_download_icon',
					        animEl: 'saving',
					        waitConfig: {
					        	interval: 200,  //interval进度的频率
					        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
								fn: function(){	//时间到后执行
                                 	Ext.MessageBox.hide();	//让进度条消失
                                }
					        }
                    });
	           		
	           		/********弹出窗口(修改老师信息和新添老师共用)********/
	           		/*弹出窗口*/
					//所属专业的ComboBox定义
					var major_data = [
				        ['1','自动化'],
				        ['2','电子信息工程'],
				        ['3','电气工程及其自动化'],
				        ['4','通信工程']
				    ];							
				    var major_store = new Ext.data.SimpleStore({
				        fields: ['value', 'text'],
				        data: major_data
				    });
				    							    
					//创建Teacher表单
					var teacherForm = new Ext.form.FormPanel({
				        labelAlign: 'right',
				        labelWidth: 80,
				        frame: true,
				        defaultType: 'textfield',						        
				        items: [{
				        	//保存老师id的隐藏域，用于修改老师信息用
				        	xtype: 'hidden',
				        	name: 'id'
				        }, {
				        	xtype: 'fieldset',
							title: '基本信息',
							autoHeight: true,
							defaultType: 'textfield',
							//统一设置宽度和验证
					        defaults: {
					        	width: 170,
					        	//不为空
						        allowBlank: false
					        },									
							items: [{
					            fieldLabel: '姓名',
					            name: 'name',
					            //最大长度
					            maxLength: 4,
					            //最小长度
					            minLength: 2,
					            //只能输入汉字（使用自定义的验证）
					            regex: /^[\u4E00-\u9FA5]+$/,
   								regexText: '只能输入汉字'
					        },{
					            fieldLabel: '性别',
   								xtype: 'combo',
   								name: 'sex',
   								width: 80,
   								hiddenName: 'sex',
   								store: new Ext.data.SimpleStore({
							        fields: ['value', 'text'],
							        data: [
								        ['男','男'],
								        ['女','女']
								    ]
							    }),
							    emptyText: '选择性别',
					            mode: 'local',
					            triggerAction: 'all',								            
						        valueField: 'value',
						        displayField: 'text',
						        //不允许用户填写
						        readOnly: true
					        },{
					            fieldLabel: '登陆账号',
					            name: 'nickname',
					            //最大长度
					            maxLength: 11,
					            //最小长度
					            minLength: 4,
					            //只能输入字母和数字
					            vtype: 'alphanum'
					        },{
					            fieldLabel: '密码',
					            name: 'password',
					            //最大长度
					            maxLength: 12,
					            //最小长度
					            minLength: 4,
					            //只能输入字母和数字
					            vtype: 'alphanum'
					        },{
					        	id: 'major',
					        	xtype: 'combo',
					            fieldLabel: '所属专业',
					            name: 'major',
					            hiddenName: 'majorId',
					            store: major_store,
					            emptyText: '选择所属专业',
					            mode: 'local',
					            triggerAction: 'all',								            
						        valueField: 'value',
						        displayField: 'text',
						        //不允许用户填写
						        readOnly: true
					        }]						     
				        }]							        
				    });
					//定义弹出窗口
					var teacher_win = new Ext.Window({
						id: 'teacher_win',
						title: '添加新老师',
				        width:350,
				        height:250,
				        //设置当点击X按钮时候，是隐藏还是销毁
				        closeAction:'hide',
				        //不允许超出浏览器范围
				        constrain: true,
				        //开启蒙板效果
				        modal: true,
				        buttonAlign: 'center',
				        items: [teacherForm],
				        buttons: [{
					       	text:'保存',
					       	iconCls: 'submit_icon',
					       	//提交表单
					       	handler: function () {
					       		//如果表单验证成功，则显示保存的等待，和提交form
					       		if (teacherForm.getForm().isValid()) {
					       			//提交表单
					       			teacherForm.getForm().submit({
					        			success: function (teacherForm, action) {
					        				Ext.Msg.alert("操作结果", action.result.msg);
					        				//重置teacherForm中的数据
					        				teacherForm.reset();
					        				//关闭窗口（隐藏）
					        				teacher_win.hide();
					        				//刷新表格数据，看看修改或添加效果
					        				mgr_tch_grid.getStore().reload();
					        			},
					        			failure: function (teacherForm, action) {
					        				Ext.Msg.alert("操作结果", action.result.msg);
					        			}
					        		});
					       			//显示等待保存的提示信息
					        		Ext.MessageBox.show({
					        				title: '请等待',
		                                    msg: '正在保存，请稍等...',
		                                    progress: true,								        
									        width: 240,
									        wait:true,
									        icon: 'mb_waiting_icon',
									        animEl: 'saving',
									        waitConfig: {
									        	interval: 200,  //interval进度的频率
									        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
												fn: function(){	//时间到后执行
				                                 	Ext.MessageBox.hide();	//让进度条消失
				                                }
									        }
		                            });
					       		}	
				        	}						       	 	
				        }, {
				        	text:'重置',
				        	iconCls: 'reset_icon',
				        	handler: function () {
				        		teacherForm.getForm().reset();
				        	}	
				        }, {
				        	text:'取消',
				        	iconCls: 'revoke_icon',
				        	handler: function () {
				        		teacher_win.hide();
				        	}	
				        }]
				    });
	           		/*******弹出窗口(修改老师信息和新添老师共用)结束**********/
	           		
	           		
	           		/****************管理老师的所有处理函数****************/						    
				    
				    /*****添加老师的处理函数*******/
					var add_teacher = function() {
						//修改form的提交地址
						teacherForm.getForm().url = 'mgr_teacher.do?cmd=add';	
						teacherForm.getForm().reset();	
						teacher_win.setTitle("添加新老师");		
					    teacher_win.show();								
					}
					/*****添加老师的处理函数结束*******/
					
					/*****编辑老师的处理函数*******/							
					var edit_teacher = function () {
					
						//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
						var selectedCol = mgr_tch_grid.getSelectionModel().getSelected();
						
						if (selectedCol == undefined) {				//如果没有选择任何一行
						
							Ext.Msg.alert("错误提示", "请选择一行你要编辑的记录！");
							
						} else {									//选择的行处理								
							
							//修改form的体交地址
							teacherForm.getForm().url = 'mgr_teacher.do?cmd=modify';
							teacher_win.setTitle("修改老师信息");
							teacher_win.show();	
							
							/***注意，一定要先显示窗口，以及其中的From在给Form设值，才可以****/
							
							//把表格中选中行的数据填充到表单中，并显示Window							
							teacherForm.getForm().setValues({
								id: selectedCol.get("id"),
								name: selectedCol.get("name"),
								sex: selectedCol.get("sex"),
								nickname: selectedCol.get("nickname"),
								password: selectedCol.get("password"),
								major: selectedCol.get("major_id")
							});
						}
													
					}														
					/*****编辑老师的处理函数结束*******/							
					
					/*****删除老师的处理函数*******/							
					var del_teacher = function () {		
					
						//获取表格中选中的所有行（使用getSelections()只选择选中的多个行）返回的是Record类型的数组
						var selectedCols = mgr_tch_grid.getSelectionModel().getSelections();
						//返回数组的长度，判断用户是否选择
						var length = selectedCols.length;
						
						if (length == 0) {				//如果没有选择任何一行
							Ext.Msg.alert("错误提示", "请选择你要删除的记录！");
						} else {									//选择的行处理
							
							//先提醒用户是否要删除
							Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
								//如果用户确定删除
								if (btn == 'yes') {
									//把要删除的所有选中的id组装字符串，传递到后台处理（数组形式）
									var goBackStr = "";
									for (var i = 0; i < length; i++) {
										var col = selectedCols[i];
										if (i==0) {
											goBackStr = goBackStr + col.get("id");
										} else {
											goBackStr = goBackStr + "," + col.get("id");
										}
									}
									
									//发送到后台处理
									Ext.Ajax.request({
										url: 'mgr_teacher.do?cmd=delete',
										success: function(response) {
											var obj = Ext.decode(response.responseText);
											if (typeof(obj) != 'undefined') {
												if (obj.result == 'success') {
													Ext.Msg.alert("操作结果", "恭喜，删除老师成功！");
													//刷新表格数据，看看删除效果
						        					mgr_tch_grid.getStore().reload();
												} else {
													Ext.Msg.alert("操作结果", "抱歉，删除老师失败！请重新尝试！");
												}
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除老师失败！请重新尝试！");
											}
											
										},
										failure: function() {
											Ext.Msg.alert("操作结果", "抱歉，删除老师失败！请重新尝试！");
										},
										params: {delStr: goBackStr}										
										
									});
								}							
							});
						}
													
					}														
					/*****删除老师的处理函数结束*******/
					
					/****************管理老师的所有处理函数结束****************/
	           		
	           		
	           		/*****************表格定义*********************/
	           		//表格列样式
	           		//添加复选功能（即SelectModel对象）
	           		var mgr_tch_sm = new Ext.grid.CheckboxSelectionModel({
	           			//取消此对象自带的，单击某行选中的功能
	           			handleMouseDown: Ext.emptyFn()
	           		});
	           		//定义表格的行列格式
	           		var mgr_tch_columns = new Ext.grid.ColumnModel([
	           			//加上行号
	           			new Ext.grid.RowNumberer(),
	           			//添加复选功能（即SelectionModel对象）
	           			mgr_tch_sm,
				        {header: '编号', dataIndex: 'id'},
				        {header: '姓名', dataIndex: 'name'},
				        {header: '性别', dataIndex: 'sex', renderer: sexRenderer},
				        {header: '登陆账号', dataIndex: 'nickname'},
				        {header: '密码', dataIndex: 'password'},
				        {header: '所属专业', dataIndex: 'major'},
				        {header: '专业编号', dataIndex: 'major_id'}
				    ]);
				    mgr_tch_columns.defaultSortable = false;		
				    				
	           		//表格数据格式
	           		var teacherRecord = Ext.data.Record.create([
				        {name: 'id', type: 'int'},
				        {name: 'name', type: 'string'},
				        {name: 'sex', type: 'string'},
				        {name: 'nickname', type: 'string'},
				        {name: 'password', type: 'string'},
				        {name: 'major', type: 'string'},
				        {name: 'major_id', type: 'int'}
				    ]);
	           		
	           		//到后台获取数据库中的数据,用于填充表格
	           		var mgr_tch_store = new Ext.data.Store({
				        proxy: new Ext.data.HttpProxy({url: 'mgr_teacher.do?cmd=show'}),
				        reader: new Ext.data.JsonReader({
				            totalProperty: 'totalCount',
				            root: 'result'
				        },teacherRecord)
				        //remoteSort: true
				    });
				    //加载数据，并发送参数到服务器端
				    mgr_tch_store.load({params:{start:0, limit:15}});																	    
				    
	                //表格定义
	           		var mgr_tch_grid = new Ext.grid.GridPanel({
	           			//title: '浏览老师信息',
	           			//遮罩提示功能
	           			loadMask: true,
	           			store: mgr_tch_store,
	           			cm: mgr_tch_columns,
	           			//添加复选功能（即SelectionModel对象）
	           			sm: mgr_tch_sm,
	           			//禁止多选，（ctrl和shift都不管用了）
				        //sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
				        //使得表格强制fit父容器
				        viewConfig: {
				            forceFit: true
				        },
				        //添加顶端的工具栏
				        tbar: [{ 								
							text: '添加',
							iconCls:'add_icon', 
							tooltip:'添加老师', 
							handler:add_teacher
						},'-',{ 
							text: '编辑',
							iconCls:'edit_icon', 
							tooltip:'编辑选中老师', 
					        handler: edit_teacher
						},'-',{ 
							text: '删除',
							iconCls:'del_icon', 
							tooltip:'删除选中老师', 
					        handler: del_teacher
						},'-',{ 
							text: '刷新',
							iconCls:'flush_icon', 
							tooltip:'刷新本页内容', 
					        handler: function() {
					            mgr_tch_grid.getStore().reload();
					        }
						}],
	           			//添加底部分页条（bbar-->bottom bar）
		                bbar: new Ext.PagingToolbar({
		                	pageSize: 15,
				            store: mgr_tch_store,
				            displayInfo: true,
				            displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
				            emptyMsg: "没有记录"
		                })
		            });
	           		/*****************表格定义结束*********************/
	           		
	           		/***************添加此表格到TabPanel***************/
	           		tab = center_cmp.add({
	           			//使用点击菜单的id，这样方便事件处理
				        id: node_id,
				        //标题为被点击的菜单项的text
				        title: node_text,
                        closable:true,
                        iconCls: 'nor_icon',
                        autoScroll:true,
                        layout: 'fit',
                        items: [mgr_tch_grid]
	           		});		  
				    /***************添加此表格到TabPanel结束***************/						    
	           	}	
	           	//设置此新增Tab为活动的Tab
				center_cmp.setActiveTab(tab);	           
           	} 
       	}
    });
	/***********************老师信息管理模块结束*********************/

    /**********************学生信息管理模块*************************/
   	Ext.getCmp("student_mgr").on('click', function(node, event) {
   		if (node.isLeaf()) {		//判断点击的是树的叶子节点
        	event.stopEvent();
        	
        	//获取点击的菜单项的id
           	var node_id = node.id;
           	//获取被点击的菜单项的text
           	var node_text = node.text;
       
           	if (node_id == 'all_student') {			//浏览所有学生
           		//从TabPanel获取此id的对象，看看tab是否已经打开
				var tab = center_cmp.getComponent(node_id);		         	
				
				if (!tab) {				//如果没有打开
					/********弹出窗口(修改班级信息和新添班级共用)********/
					
					//显示等待保存的提示信息
	        		Ext.MessageBox.show({
	        				title: '请等待',
                            msg: '正在加载，请稍等...',
                            progress: true,								        
					        width: 260,
					        wait:true,
					        icon: 'mb_download_icon',
					        animEl: 'saving',
					        waitConfig: {
					        	interval: 200,  //interval进度的频率
					        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
								fn: function(){	//时间到后执行
                                 	Ext.MessageBox.hide();	//让进度条消失
                                }
					        }
                    });
					
					//所属专业的ComboBox定义
					var major_data = [
						['1','自动化'],
						['2','电子信息工程'],
						['3','电气工程及其自动化'],
						['4','通信工程']
					];							
					var major_store = new Ext.data.SimpleStore({
						fields: ['value', 'text'],
						data: major_data
					});
													
					//创建student表单
					var studentForm = new Ext.form.FormPanel({
						labelAlign: 'right',
						labelWidth: 80,
						frame: true,
						defaultType: 'textfield',						        
						items: [{
							//保存学生id的隐藏域，用于修改学生信息用
							xtype: 'hidden',
							name: 'id'
						}, {
							xtype: 'fieldset',
							title: '基本信息',
							autoHeight: true,
							defaultType: 'textfield',
							//统一设置宽度和验证
							defaults: {
								width: 170,
								//不为空
								allowBlank: false
							},									
							items: [{
								fieldLabel: '姓名',
								name: 'name',
								//最大长度
								maxLength: 4,
								//最小长度
								minLength: 2,
								//只能输入汉字（使用自定义的验证）
								regex: /^[\u4E00-\u9FA5]+$/,
								regexText: '只能输入汉字'
							},{
								fieldLabel: '性别',
   								xtype: 'combo',
   								name: 'sex',
   								width: 80,
   								hiddenName: 'sex',
   								store: new Ext.data.SimpleStore({
							        fields: ['value', 'text'],
							        data: [
								        ['男','男'],
								        ['女','女']
								    ]
							    }),
							    emptyText: '选择性别',
					            mode: 'local',
					            triggerAction: 'all',								            
						        valueField: 'value',
						        displayField: 'text',
						        //不允许用户填写
						        readOnly: true
							},{
								xtype: 'numberfield',
								fieldLabel: '学号',
								name: 'number',
								//只能输入9位
								regex: /^[0-9]{9}/,
								regexText: '学号应该是9位数字'
							},{
								fieldLabel: '密码',
								name: 'password',
								//最大长度
								maxLength: 12,
								//最小长度
								minLength: 4,
								//只能输入字母和数字
								vtype: 'alphanum'
							},{
								xtype: 'combo',
								fieldLabel: '班级',
								name: 'banji',
								hiddenName: 'class_id',
								store: new Ext.data.Store({
									proxy: new Ext.data.HttpProxy({url: 'jsp/mgr/mgr_stu_getComboStat.jsp?cmd=getClass'}),
									reader: new Ext.data.ArrayReader({}, [
										{name: 'value'},
										{name: 'text'}
									])
								}),
								emptyText: '选择所属班级',
								mode: 'remote',
								triggerAction: 'all',								            
								valueField: 'value',
								displayField: 'text',
								//不允许用户填写
								readOnly: true
							},{
								xtype: 'combo',
								fieldLabel: '年级',
								name: 'grade',
								hiddenName: 'grade_id',
								store: new Ext.data.Store({
									proxy: new Ext.data.HttpProxy({url: 'jsp/mgr/mgr_stu_getComboStat.jsp?cmd=getGrade'}),
									reader: new Ext.data.ArrayReader({}, [
										{name: 'value'},
										{name: 'text'}
									])
								}),
								emptyText: '选择所属年级',
								mode: 'remote',
								triggerAction: 'all',								            
								valueField: 'value',
								displayField: 'text',
								//不允许用户填写
								readOnly: true
							},{
								xtype: 'combo',
								fieldLabel: '所属专业',
								name: 'major',
								hiddenName: 'major_id',
								store: major_store,
								emptyText: '选择所属专业',
								mode: 'local',
								triggerAction: 'all',								            
								valueField: 'value',
								displayField: 'text',
								//不允许用户填写
								readOnly: true
							}]						     
						}]							        
					});
					//定义弹出窗口
					var student_win = new Ext.Window({
						id: 'student_win',
						title: '添加新学生',
						width:350,
						height:300,
						//设置当点击X按钮时候，是隐藏还是销毁
						closeAction:'hide',
						//不允许超出浏览器范围
						constrain: true,
						//开启蒙板效果
						modal: true,
						buttonAlign: 'center',
						items: [studentForm],
						buttons: [{
							text:'保存',
							iconCls: 'submit_icon',
							//提交表单
							handler: function () {
								//如果表单验证成功，则显示保存的等待，和提交form
								if (studentForm.getForm().isValid()) {
									studentForm.getForm().submit({
										//提交表单
										success: function (studentForm, action) {
											Ext.Msg.alert("操作结果", action.result.msg);
											//重置studentForm中的数据
											studentForm.reset();
											//关闭窗口（隐藏）
											student_win.hide();
											//刷新表格数据，看看修改或添加效果
											mgr_stu_grid.getStore().reload();
										},
										failure: function (studentForm, action) {
											Ext.Msg.alert("操作结果", action.result.msg);
										}										
									});
									//显示等待保存的提示信息
					        		Ext.MessageBox.show({
					        				title: '请等待',
		                                    msg: '正在保存，请稍等...',
		                                    progress: true,								        
									        width: 240,
									        wait:true,
									        icon: 'mb_waiting_icon',
									        animEl: 'saving',
									        waitConfig: {
									        	interval: 200,  //interval进度的频率
									        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
												fn: function(){	//时间到后执行
				                                 	Ext.MessageBox.hide();	//让进度条消失
				                                }
									        }
		                            });
								}
							}						       	 	
						}, {
							text:'重置',
							iconCls: 'reset_icon',
							handler: function () {
								studentForm.getForm().reset();
							}	
						}, {
							text:'取消',
							iconCls: 'revoke_icon',
							handler: function () {
								student_win.hide();
							}	
						}]
					});
					/*******弹出窗口(修改学生信息和新添学生共用)结束**********/
					
					
					
					/****************管理学生的所有处理函数****************/						    

					/*****添加学生的处理函数*******/
					var add_student = function() {
						//修改form的提交地址
						studentForm.getForm().url = 'mgr_student.do?cmd=add';	
						studentForm.getForm().reset();	
						student_win.setTitle("添加新学生");		
						student_win.show();								
					}
					/*****添加学生的处理函数结束*******/
					
					/*****编辑学生的处理函数*******/							
					var edit_student = function () {
					
						//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
						var selectedCol = mgr_stu_grid.getSelectionModel().getSelected();
						
						if (selectedCol == undefined) {				//如果没有选择任何一行
						
							Ext.Msg.alert("错误提示", "请选择一行你要编辑的记录！");
							
						} else {									//选择的行处理								
							
							//修改form的体交地址
							studentForm.getForm().url = 'mgr_student.do?cmd=modify';
							student_win.setTitle("修改学生信息");
							student_win.show();	
							
							/***注意，一定要先显示窗口，以及其中的From在给Form设值，才可以****/
							
							//把表格中选中行的数据填充到表单中						
							studentForm.getForm().setValues({
								id: selectedCol.get("id"),
								name: selectedCol.get("name"),
								sex: selectedCol.get("sex"),
								number: selectedCol.get("number"),
								password: selectedCol.get("password"),
								class_id: selectedCol.get("banji"),
								grade_id: selectedCol.get("grade_id"),
								major_id: selectedCol.get("major_id")
							});
						}
													
					}														
					/*****编辑学生的处理函数结束*******/							
					
					/*****删除学生的处理函数*******/							
					var del_student = function () {		
					
						//获取表格中选中的所有行（使用getSelections()只选择选中的多个行）返回的是Record类型的数组
						var selectedCols = mgr_stu_grid.getSelectionModel().getSelections();
						//返回数组的长度，判断用户是否选择
						var length = selectedCols.length;
						
						if (length == 0) {				//如果没有选择任何一行
							Ext.Msg.alert("错误提示", "请选择你要删除的记录！");
						} else {									//选择的行处理
							
							//先提醒用户是否要删除
							Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
								//如果用户确定删除
								if (btn == 'yes') {
									//把要删除的所有选中的id组装字符串，传递到后台处理（数组形式）
									var goBackStr = "";
									for (var i = 0; i < length; i++) {
										var col = selectedCols[i];
										if (i==0) {
											goBackStr = goBackStr + col.get("id");
										} else {
											goBackStr = goBackStr + "," + col.get("id");
										}
									}
									
									//发送到后台处理
									Ext.Ajax.request({
										url: 'mgr_student.do?cmd=delete',
										success: function(response) {
											var obj = Ext.decode(response.responseText);
											if (typeof(obj) != 'undefined') {
												if (obj.result == 'success') {
													Ext.Msg.alert("操作结果", "恭喜，删除学生成功！");
													//刷新表格数据，看看删除效果
													mgr_stu_grid.getStore().reload();
												} else {
													Ext.Msg.alert("操作结果", "抱歉，删除学生失败！请重新尝试！");
												}
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除学生失败！请重新尝试！");
											}
											
										},
										failure: function() {
											Ext.Msg.alert("操作结果", "抱歉，删除学生失败！请重新尝试！");
										},
										params: {delStr: goBackStr}										
										
									});
								}							
							});
						}
													
					}														
					/*****删除学生的处理函数结束*******/
					
					/****************管理学生的所有处理函数结束****************/
					
					/*****************表格定义*********************/
	           		//表格列样式
	           		//添加复选功能（即SelectModel对象）
	           		var mgr_stu_sm = new Ext.grid.CheckboxSelectionModel({
	           			//取消此对象自带的，单击某行选中的功能
	           			handleMouseDown: Ext.emptyFn()
	           		});
	           		//定义表格的行列格式
	           		var mgr_stu_columns = new Ext.grid.ColumnModel([
	           			//加上行号
	           			new Ext.grid.RowNumberer(),
	           			//添加复选功能（即SelectionModel对象）
	           			mgr_stu_sm,
				        {header: '编号', dataIndex: 'id'},
						{header: '学号', dataIndex: 'number'},
						{header: '姓名', dataIndex: 'name'},
						{header: '性别', dataIndex: 'sex', renderer: sexRenderer},
						{header: '密码', dataIndex: 'password'},
						//注意这里不能用class，ie中解析会有问题，所以改成banji
						{header: '班级', dataIndex: 'banji'},
						{header: '年级', dataIndex: 'grade'},
						{header: '年级编号', dataIndex: 'grade_id'},
						{header: '专业', dataIndex: 'major'},
						{header: '专业编号', dataIndex: 'major_id'}
				    ]);
				    mgr_stu_columns.defaultSortable = false;		
				    				
	           		//表格数据格式
	           		var studentRecord = Ext.data.Record.create([
				        {name: 'id', type: 'int'},
						{name: 'number', type: 'int'},
						{name: 'name', type: 'string'},
						{name: 'sex', type: 'string'},
						{name: 'password', type: 'string'},
						{name: 'banji', type: 'int'},
						{name: 'grade', type: 'string'},
						{name: 'grade_id', type: 'int'},
						{name: 'major', type: 'string'},
						{name: 'major_id', type: 'int'}
						
				    ]);
	           		
	           		//到后台获取数据库中的数据,用于填充表格
	           		var mgr_stu_store = new Ext.data.Store({
				        proxy: new Ext.data.HttpProxy({url: 'mgr_student.do?cmd=show'}),
				        reader: new Ext.data.JsonReader({
				            totalProperty: 'totalCount',
				            root: 'result'
				        },studentRecord)
				        //remoteSort: true
				    });
				    //加载数据，并发送参数到服务器端
				    mgr_stu_store.load({params:{start:0, limit:15}});																	    
				    
	                //表格定义
	           		var mgr_stu_grid = new Ext.grid.GridPanel({
	           			//title: '浏览学生信息',
	           			//遮罩提示功能
	           			loadMask: true,
	           			store: mgr_stu_store,
	           			cm: mgr_stu_columns,
	           			//添加复选功能（即SelectionModel对象）
	           			sm: mgr_stu_sm,
	           			//禁止多选，（ctrl和shift都不管用了）
				        //sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
				        //使得表格强制fit父容器
				        viewConfig: {
				            forceFit: true
				        },
				        //添加顶端的工具栏
				        tbar: [{ 								
							text: '添加',
							iconCls:'add_icon', 
							tooltip:'添加学生', 
							handler: add_student
						},'-',{ 
							text: '编辑',
							iconCls:'edit_icon', 
							tooltip:'编辑学生', 
					        handler: edit_student
						},'-',{ 
							text: '删除',
							iconCls:'del_icon', 
							tooltip:'删除学生', 
					        handler: del_student
						},'-',{ 
							text: '刷新',
							iconCls:'flush_icon', 
							tooltip:'刷新本页', 
					        handler: function() {
					            mgr_stu_grid.getStore().reload();
					        }
						}],
	           			//添加底部分页条（bbar-->bottom bar）
		                bbar: new Ext.PagingToolbar({
		                	pageSize: 15,
				            store: mgr_stu_store,
				            displayInfo: true,
				            displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
				            emptyMsg: "没有记录"
		                })
		            });
	           		/*****************表格定义结束*********************/
	           		
	           		/***************添加此表格到TabPanel***************/
	           		tab = center_cmp.add({
	           			//使用点击菜单的id，这样方便事件处理
				        id: node_id,
				        //标题为被点击的菜单项的text
				        title: node_text,
                        closable:true,
                        iconCls: 'nor_icon',
                        autoScroll:true,
                        layout: 'fit',
                        items: [mgr_stu_grid]
	           		});		  
				    /***************添加此表格到TabPanel结束***************/
						
				}
				
				//设置此新增Tab为活动的Tab
				center_cmp.setActiveTab(tab);
           	}
       	}
    });
    /**********************学生信息管理模块结束*************************/
    
    
    
	/************************个人信息管理模块**************************/
    Ext.getCmp("ownInfo_mgr").on('click', function(node, event) {
       	if (node.isLeaf()) {		//判断点击的是树的叶子节点
        	event.stopEvent();
        	
        	//获取点击的菜单项的id
           	var node_id = node.id;
           	//获取被点击的菜单项的text
           	var node_text = node.text;
       		
           	if (node_id == 'own_info') {			//管理个人信息
           		//从TabPanel获取此id的对象，看看tab是否已经打开
				var tab = center_cmp.getComponent(node_id);		         	
				
				if (!tab) {				//如果没有打开
					
					//显示等待保存的提示信息
	        		Ext.MessageBox.show({
	        				title: '请等待',
                            msg: '正在加载，请稍等...',
                            progress: true,								        
					        width: 260,
					        wait:true,
					        icon: 'mb_download_icon',
					        animEl: 'saving',
					        waitConfig: {
					        	interval: 200,  //interval进度的频率
					        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
								fn: function(){	//时间到后执行
                                 	Ext.MessageBox.hide();	//让进度条消失
                                }
					        }
                    });
					
					/*****************表格定义*********************/
					//表格列样式
					var mgr_columns = new Ext.grid.ColumnModel([
						new Ext.grid.RowNumberer(),
						//添加复选功能（即SelectionModel对象）
						{header: '编号', dataIndex: 'id'},
						{header: '姓名', dataIndex: 'name'},
						{header: '性别', dataIndex: 'sex', renderer: sexRenderer},
						{header: '登陆账号', dataIndex: 'nickname'},
						{header: '密码', dataIndex: 'password'}
					]);
					mgr_columns.defaultSortable = false;		
									
					//表格数据格式
					var managerRecord = Ext.data.Record.create([
						{name: 'id', type: 'int'},
						{name: 'name', type: 'string'},
						{name: 'sex', type: 'string'},
						{name: 'nickname', type: 'string'},
						{name: 'password', type: 'string'}
					]);
					
					//到后台获取数据库中的数据,用于填充表格
					var mgr_store = new Ext.data.Store({
						proxy: new Ext.data.HttpProxy({url: 'mgr_self.do?cmd=show'}),
						reader: new Ext.data.JsonReader({
							root: 'root'
						}, managerRecord),
						remoteSort: true
					});
					//加载数据，并发送参数到服务器端
					mgr_store.load();		
					//表格定义
					var mgr_grid = new Ext.grid.GridPanel({
						//遮罩提示功能
						loadMask: true,
						store: mgr_store,
						cm: mgr_columns,
						//使得表格强制fit父容器
						viewConfig: {
							forceFit: true
						}
					});
					/*****************表格定义结束*********************/
					
					/***************添加此表格到TabPanel***************/
					tab = center_cmp.add({
						//使用点击菜单的id，这样方便事件处理
						id: node_id,
						//标题为被点击的菜单项的text
						title: node_text,
						closable:true,
						iconCls: 'nor_icon',
						autoScroll:true,
						layout: 'fit',
						items: [mgr_grid]
					});		  
					/***************添加此表格到TabPanel结束***************/									
				}						
				//设置此新增Tab为活动的Tab
				center_cmp.setActiveTab(tab);
				
           	} else if (node_id == 'modify_info') {	  
           	
           		//看看弹出窗口是否存在，已经渲染，没有就创建
           		var manager_win = Ext.getCmp("manager_win");
           		if (!manager_win) {
	           		/********修改个人信息的弹出窗口**********/															
					//创建表单
					var managerForm = new Ext.form.FormPanel({
						url: 'mgr_self.do?cmd=modify',
						id: 'managerForm',
						labelAlign: 'right',
						labelWidth: 80,
						frame: true,
						defaultType: 'textfield',						        
						items: [{
							//保存个人id的隐藏域，用于修改个人信息用
							xtype: 'hidden',
							name: 'id'
						}, {
							xtype: 'fieldset',
							title: '基本信息',
							autoHeight: true,
							defaultType: 'textfield',
							//统一设置宽度和验证
							defaults: {
								width: 170,
								//不为空
								allowBlank: false
							},									
							items: [{
								fieldLabel: '姓名',
								name: 'name',
								//最大长度
								maxLength: 4,
								//最小长度
								minLength: 2,
								//只能输入汉字（使用自定义的验证）
								regex: /^[\u4E00-\u9FA5]+$/,
								regexText: '只能输入汉字'
							},{
								fieldLabel: '性别',
								name: 'sex',
								//最大长度
								maxLength: 1,
								//只能输入汉字（使用自定义的验证）
								regex: /^[男|女]/,
								regexText: '只能输入男或女'
							},{
								fieldLabel: '登陆账号',
								name: 'nickname',
								//最大长度
								maxLength: 11,
								//最小长度
								minLength: 4,
								//只能输入字母和数字
								vtype: 'alphanum'
							},{
								fieldLabel: '密码',
								name: 'password',
								//最大长度
								maxLength: 12,
								//最小长度
								minLength: 4,
								//只能输入字母和数字
								vtype: 'alphanum'
							}]						     
						}]							        
					});
					//定义弹出窗口
					manager_win = new Ext.Window({
						id: 'manager_win',
						title: '修改个人信息',
						width:350,
						height:220,
						//设置当点击X按钮时候，是隐藏还是销毁
						closeAction:'hide',
						//不允许超出浏览器范围
						constrain: true,
						//开启蒙板效果
						modal: true,
						buttonAlign: 'center',
						items: [managerForm],
						buttons: [{
							text:'修改',
							iconCls: 'submit_icon',
							//提交表单
							handler: function () {
								//如果表单验证成功，则显示保存的等待，和提交form
					       		if (managerForm.getForm().isValid()) {
					       			//提交表单
									managerForm.getForm().submit({											
										success: function (managerForm, action) {
											Ext.Msg.alert("操作结果", action.result.msg, function(btn) {
												if (btn == 'ok') {
													//重置managerForm中的数据
													managerForm.reset();
													//关闭窗口（隐藏）
													manager_win.hide();
													//登出，让用户重新登陆
													top.window.location.href='loginOut.do';
												}
											});												
										},
										failure: function (managerForm, action) {
											Ext.Msg.alert("操作结果", action.result.msg);
										}
									});
									//显示等待保存的提示信息
					        		Ext.MessageBox.show({
					        				title: '请等待',
		                                    msg: '正在保存，请稍等...',
		                                    progress: true,								        
									        width: 240,
									        wait:true,
									        icon: 'mb_waiting_icon',
									        animEl: 'saving',
									        waitConfig: {
									        	interval: 200,  //interval进度的频率
									        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
												fn: function(){	//时间到后执行
				                                 	Ext.MessageBox.hide();	//让进度条消失
				                                }
									        }
		                            });									
					       		}
							}						       	 	
						}, {
							text:'重置',
							iconCls: 'reset_icon',
							handler: function () {
								managerForm.getForm().reset();
							}	
						}, {
							text:'取消',
							iconCls: 'revoke_icon',
							handler: function () {
								manager_win.hide();
							}	
						}]
					});
					/******************弹出窗口结束*****************/     
				}    	
           		//显示弹出窗口，修改信息		           		
				manager_win.show(); 
				//到后台获取数据
				Ext.Ajax.request({
					url: 'mgr_self.do?cmd=get',
					success: function(response) {
						var obj = Ext.decode(response.responseText);
						if (typeof(obj) != 'undefined') {
							//填充到form中
							Ext.getCmp("managerForm").getForm().setValues({
								id: obj.id,
								name: obj.name,
								sex: obj.sex,
								nickname: obj.nickname,
								password: obj.password
							});
						} else {
							Ext.Msg.alert("提示信息", "抱歉，读取个人信息失败！");
						}								
					},
					failure: function() {
						Ext.Msg.alert("提示信息", "抱歉，读取个人信息失败！");
					}	
				});      		
           	}
      	}
    });
    /**********************个人信息管理模块结束************************/
    
    
    /************************BUG和建议管理模块************************/
    Ext.getCmp("advise_mgr").on('click', function(node, event) {
       	if (node.isLeaf()) {		//判断点击的是树的叶子节点
        	event.stopEvent();
        	
        	//获取点击的菜单项的id
           	var node_id = node.id;
           	//获取被点击的菜单项的text
           	var node_text = node.text;
       
           	if (node_id == 'suggest_info') {			//管理BUG信息
           		
           		//从TabPanel获取此id的对象，看看tab是否已经打开
				var tab = center_cmp.getComponent(node_id);		         	
				
				if (!tab) {				//如果没有打开				
					
					//显示等待保存的提示信息
	        		Ext.MessageBox.show({
	        				title: '请等待',
                            msg: '正在加载，请稍等...',
                            progress: true,								        
					        width: 260,
					        wait:true,
					        icon: 'mb_download_icon',
					        animEl: 'saving',
					        waitConfig: {
					        	interval: 200,  //interval进度的频率
					        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
								fn: function(){	//时间到后执行
                                 	Ext.MessageBox.hide();	//让进度条消失
                                }
					        }
                    });
					
					/***定义带插件RowExpander的表格上的工具条的按钮的处理函数***/	
					
					//定义RowExpander显示格式的按钮的处理函数
					var styleButtonFn = function(btn){
						if (styleButton.getText() == '详细模式') {
							//展开分组表格的分组
							suggestGrid.getView().expandAllGroups();
							for (var i = 0; i < suggestGrid.getStore().getCount(); i++) {		
				                styleButton.setText('简洁模式');
				                styleButton.setIconClass("pithy_icon");
				                expander.expandRow(i);
					        }
						} else if (styleButton.getText() == '简洁模式') {
							//收缩分组表格的分组
							suggestGrid.getView().collapseAllGroups();
							for (var i = 0; i < suggestGrid.getStore().getCount(); i++) {		
				                styleButton.setText('详细模式');
				                styleButton.setIconClass("minute_icon");
			                	expander.collapseRow(i);
					        }							
						}
					}
					
					//定义删除按钮的处理函数
					var deleteButtonFn = function(){
						//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
						var selectedCol = suggestGrid.getSelectionModel().getSelected();
						
						if (selectedCol == undefined) {				//如果没有选择任何一行
						
							Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
							
						} else {									//选择的行删除
							//先提醒用户是否要删除
							Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
								//如果用户确定删除
								if (btn == 'yes') {
									//获取选择的id
									var del_id = selectedCol.get("id");									
									//发送到后台处理
									Ext.Ajax.request({
										url: 'mgr_suggest.do?cmd=delete',
										success: function(response) {
											var obj = Ext.decode(response.responseText);
											if (typeof(obj) != 'undefined') {
												if (obj.result == 'success') {
													Ext.Msg.alert("操作结果", "恭喜，删除记录成功！");
													//刷新表格数据，看看删除效果
													suggestGrid.getStore().reload();
												} else {
													Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
												}
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
											}
											
										},
										failure: function() {
											Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
										},
										params: {id: del_id}		
									});
								}
							});
						}						
					}
					
					
					/**定义带插件RowExpander的表格上的工具条的按钮的处理函数结束**/
					
					
					
					/******定义显示bug和建议的带ext插件RowExpander的表格*********/	
					
						//定义表格Record样式
						var suggestRecord = Ext.data.Record.create([
					        {name: 'id', type: 'int', mapping: 'id'},
					        {name: 'title', type: 'string', mapping: 'title'},
					        {name: 'sort', type: 'string', mapping: 'sort'},
					        {name: 'author', type: 'string', mapping: 'author'},
					        {name: 'role', type: 'string', mapping: 'role'},
					        {name: 'pubdate', type: 'date', mapping: 'pubdate', dateFormat: 'Y-m-dTH:i:s'},
					        {name: 'content', type: 'string', mapping: 'content'}
					    ]);
						
					    //定义加号里面的内容显示格式
					    var expander = new Ext.grid.RowExpander({
					        tpl : new Ext.Template(
					            '<p>&nbsp;</p>',
					            '<p><b>内容：</b></p>',
					            '<p>&nbsp;</p>',
					            '<p>{content}</p><br /><br />'
					        )
					    });
					    
					    //定义表格列样式
					    var suggestColums = new Ext.grid.ColumnModel([
					    	//加上上面定义的expander
					        expander,
					    {
					        id: 'id',
					        header: '编号',
					        dataIndex: 'id',
					        type: 'int'
					    },{
					        id: 'title',
					        header: '标题',
					        dataIndex: 'title',
					        type: 'string'
					    },{
					        id: 'sort',
					        header: '分类',
					        dataIndex: 'sort',
					        type: 'string'
					    },{
					        id: 'author',
					        header: '作者',
					        dataIndex: 'author',
					        type: 'string'
					    },{
					        id: 'role',
					        header: '角色',
					        dataIndex: 'role',
					        type: 'string'
					    },{
					        id: 'pubdate',
					        header: '发表时间',
					        dataIndex: 'pubdate',
					        type: 'date',
					        width: 130,
					        renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
					    }]);
					    suggestColums.defaultSortable = false;
					    
					    //定义Stroe(使用的是GroupingStore产生分组表格，按是GUG或建议分组)
					    var suggestStore = new Ext.data.GroupingStore({
					        proxy: new Ext.data.HttpProxy({url:'mgr_suggest.do?cmd=show'}),
					        reader: new Ext.data.JsonReader({
						        totalProperty: 'totalProperty',
						        root: 'root'
						    }, suggestRecord),
						    //分组的列
							groupField: 'sort',
							//分组必须设置的，排序的列
							sortInfo: {field: 'id', direction: 'desc'}
					    });
					    suggestStore.load({params:{start: 0, limit: 10}});				    
					    
					    //定义表格顶端工具栏	
					    var styleButton = new Ext.Button({
					        text: '详细模式',
					        tooltip: '切换显示模式',
					        iconCls:'minute_icon',
					        handler: styleButtonFn
					    });
					    
					    var deleteButton = new Ext.Button({
					        text: '删除',
					        tooltip: '删除选中的建议',
					        iconCls:'del_icon',
					        handler: deleteButtonFn
					    });
					    var topToolbar = new Ext.Toolbar({
					        items: [styleButton, '-', deleteButton]
					    });
					    
					    //定义表格
					    var suggestGrid = new Ext.grid.GridPanel({
					    	loadMask: true,
					        //使得表格强制fit父容器
					        viewConfig: {
					            forceFit: true
					        },
					        store: suggestStore,
					        cm: suggestColums,
					        sm: new Ext.grid.RowSelectionModel(),
					        //设置分组View
							view: new Ext.grid.GroupingView({
								forceFit:true,
						        //显示这个分组有多少项
						        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
							}),
					        //添加顶端的工具栏
					        tbar: topToolbar,
					        //添加底部分页条（bbar-->bottom bar）
					        bbar: new Ext.PagingToolbar({
								pageSize: 10,
								store: suggestStore,
								displayInfo: true,
								displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
								emptyMsg: "没有记录"
							}),
							//扩展插件
					        plugins: expander,
					        collapsible: true,
					        animCollapse: false
					    });
						
					/*****定义显示bug和建议的带ext插件RowExpander的表格结束*******/
					    
					    
					/*****************添加此表格到TabPanel*****************/
					tab = center_cmp.add({
						//使用点击菜单的id，这样方便事件处理
						id: node_id,
						//标题为被点击的菜单项的text
						title: node_text,
						closable:true,
						iconCls: 'nor_icon',
						autoScroll:true,
						layout: 'fit',
						items: [suggestGrid]
					});		  
					/***************添加此表格到TabPanel结束***************/
							
				}
				
				//设置此新增Tab为活动的Tab
				center_cmp.setActiveTab(tab);
           	} 
        }
    });
    /**********************BUG和建议管理模块结束***********************/
    
});

